package com.zhuhao.basic.staticdemo;


/**
 * 基本上代码块分为三种：Static静态代码块、构造代码块、普通代码块
 * <p>
 * 代码块执行顺序静态代码块（属于类，无论初始化几次，只会执行一次）——> 构造代码块（属于实列，初始化一次执行一次） ——> 构造函数——> 普通代码块
 * <p>
 * 继承中代码块执行顺序：父类静态块——>子类静态块——>父类代码块——>父类构造器——>子类代码块——>子类构造器
 */
public class Initializationblock {

    //静态初始化块
    static {
        System.out.println("静态初始化块01010101");
    }

    static {
        System.out.println("静态初始化块0202020202");
    }

    int intA;
    int intB;

    {
        intA = 10;
        intB = 15;

        System.out.println("构造初始化块11111");
    }

    {
        System.out.println("构造初始化块22222");
    }

    {
        System.out.println("构造初始化块33333");
    }

    public Initializationblock() {
        System.out.println("无参构造器00000000");
    }

    public Initializationblock(int a) {
        System.out.println("一个参数的构造器");
    }

    public void method() {
        {
            System.out.println("普通初始化块");
        }
    }
}
